<?php

declare(strict_types=1);

namespace app\common\dao\sys;

use app\common\model\sys\SysUserRoleMenus;
use app\common\traits\DaoTrait;

/**
 * 用户-角色-菜单关联表
 * @author:kaige
 * @update:2022-06-12
 * @copyright ©2022 泉州市盛筑信息科技有限公司 版权所有
 */
class UserRoleMenusDao
{
  // 当前操作的模型
  protected $model = null;

  // 对应模型的主键，默认为id
  protected $pk = 'id';

  // 对应模型默认查询的字段
  protected $name = 'user_role_id';

  // 对应模型允许查询的字段(默认全部查询)
  protected $allowField = ['*'];

  // 允许单字段更新
  protected $uaField = [];

  // 查询结果-要隐藏的字段 默认空数组
  protected $hideField = [];

  public function __construct()
  {
    $this->model = new SysUserRoleMenus();
  }
  use DaoTrait;

  /**
   * 根据角色ID删除用户角色所有权限 关联
   */
  public function delUserRoleIdByRoleId($role_id = 0)
  {
    return $this->model->where(['user_role_id' => $role_id])->delete();
  }

  /**
   * 批量保存--需要有主键的，否则超慢。
   * @param array $data 二维数组
   */
  public function saveAllData($data)
  {
    return $this->model->saveAll($data);
  }

  /**
   * 批量新增
   */
  public function insertAllData($data)
  {
    return $this->model->insertAll($data);
  }

  /**
   * 根据用户ID找出拥有角色
   * @return array
   */
  public function getRoleIdByUserId($user_id)
  {
    return $this->model->where('user_role_id',$user_id)->column('menu_id');
  }
}
